'use strict';

const Controller = require('egg').Controller;

class FollowController extends Controller {
  async follow() {
    //   解构
    let {app,ctx,service}=this
    // 获取当前用户
    let currentUser=ctx.authUser
    // 参数验证
    ctx.validate({
        follow_id:{
            type:'int',
            desc:'关注者ID',
            required:true
        }
    })
    // 获取参数
    let {follow_id}=ctx.request.body
    let where={
        user_id:currentUser.id,
        follow_id
    }
    // 判断是否关注用户
    let follow=await app.model.Follow.findOne(where)
    if(follow){
        return ctx.apiFail('你已关注过了')
    }
    // 判断是用户是否存在
    if(!await service.user.exist(follow_id)){
        return ctx.apiFail('用户不存在')
    }
    // 判断用户是否为自己
    if(follow_id===currentUser.id){
        return ctx.apiFail('不能关注自己')
    }
    // 创建关注
    await app.model.Comment.create(where)
    // 返回数据
    ctx.apiSuccess({status:true,msg:'关注成功'})
    
  }
}

module.exports = FollowController;
